package com.fand.platform.userCenter.dao;

import java.util.List;
import java.util.Map;

import com.fand.dto.PaginationDto;
import com.fand.platform.userCenter.dto.UserDto;
import com.fand.platform.userCenter.dto.UserLoDto;
import com.fand.platform.userCenter.dto.UserLoInDto;
import com.fand.platform.userCenter.dto.UserLoInLoDto;
import com.fand.platform.userCenter.dto.UserReDto;
import com.fand.platform.userCenter.dto.UserReLoDto;

/**
 * 用户
 *
 * @author yaoHT
 * 
 */
public interface UserDao {
	String BEAN_ID = "com.fand.platform.userCenter.dao.UserDao";

	/**
	 * 插入:用户
	 * 
	 * @param insertUser
	 *            用户对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertUserBy1(UserDto insertUser, String... insertProperties);

	/**
	 * 插入:用户
	 * 
	 * @param insertUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int insertUserBy1_1(UserDto insertUser);

	/**
	 * 插入:用户
	 * 
	 * @param insertUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int insertUserBy2(UserDto insertUser);
	
	/**
	 * 删除:用户
	 * 
	 * @param deleteUser
	 *            用户对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteUserBy1(UserDto deleteUser, String... whereEqProperties);

	/**
	 * 删除:用户
	 * 
	 * @param deleteUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserBy1_1(UserDto deleteUser);
	
	/**
	 * 删除:用户
	 * 
	 * @param deleteUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserByIds(UserDto deleteUser);

	/**
	 * 更新:用户
	 * 
	 * @param updateUser
	 *            用户对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateUserBy1(UserDto updateUser, String[] updateProperties, String... whereEqProperties);

	/**
	 * 更新:用户
	 * 
	 * @param updateUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int updateUserBy1_1(UserDto updateUser);
	
	/**
	 * 更新:用户
	 * 
	 * @param updateUser
	 *            用户对象
	 * 
	 * @return 影响行数
	 */
	int updateUserBy2(UserDto updateUser);

	/**
	 * 查询:用户
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserBy1ForObject(Class<R> requiredType, UserDto selectUser, String objectId, String... whereEqProperties);

	/**
	 * 查询:用户
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserBy1_1ForObject(Class<R> requiredType, UserDto selectUser, String objectId);
	
	/**
	 * 查询:用户
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserBy2ForObject(Class<R> requiredType, UserDto selectUser, String objectId);
	
	/**
	 * 查询:用户
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户对象集合
	 */
	<R> List<R> selectUserBy1ForObjectList(Class<R> requiredType, UserDto selectUser, String objectId, String... whereEqProperties);

	/**
	 * 查询:用户
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 用户对象集合
	 */
	<R> List<R> selectUserBy1_1ForObjectList(Class<R> requiredType, UserDto selectUser, String objectId);
	
	/**
	 * 查询:用户
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 用户对象集合
	 */
	<R> List<R> selectUserBy2ForObjectList(Class<R> requiredType, UserDto selectUser, String objectId);

	/**
	 * 查询:用户
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserBy1ForMappedObject(Class<R> mappedClass, UserDto selectUser, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserBy1_1ForMappedObject(Class<R> mappedClass, UserDto selectUser);
	
	/**
	 * 查询:用户
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserBy2ForMappedObject(Class<R> mappedClass, UserDto selectUser);

	/**
	 * 查询:用户
	 * 
	 * @param selectUser
	 *            用户对象
	 * @return 返回数据
	 */
	int selectUserByCodeNqIdForInteger(UserDto selectUser);

	/**
	 * 查询:用户
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户对象集合
	 */
	<R> List<R> selectUserBy1ForMappedObjectList(Class<R> mappedClass, UserDto selectUser, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @return 用户对象集合
	 */
	<R> List<R> selectUserBy1_1ForMappedObjectList(Class<R> mappedClass, UserDto selectUser);

	/**
	 * 查询:用户
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUser
	 *            用户对象
	 * 
	 * @return 用户对象集合
	 */
	<R> List<R> selectUserBy2ForMappedObjectList(Class<R> mappedClass, UserDto selectUser);
	
	/**
	 * 分页:用户
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param paginationUser
	 *            用户对象
	 * 
	 * @return 用户分页对象
	 */
	<R> PaginationDto<R> paginationUserBy1ForMappedObjectList(final Class<R> mappedClass,
			UserDto paginationUser);
			
	/**
	 * 分页
	 * 
	 * @param paginationUser
	 *            用户对象
	 * 
	 * @return 用户分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserBy1ForMapList(UserDto paginationUser);

	/**
	 * 插入:用户日志
	 * 
	 * @param insertUserLo
	 *            用户日志对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertUserLoBy1(UserLoDto insertUserLo, String... insertProperties);
	
	/**
	 * 删除:用户日志
	 * 
	 * @param deleteUserLo
	 *            用户日志对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteUserLoBy1(UserLoDto deleteUserLo, String... whereEqProperties);


	/**
	 * 更新:用户日志
	 * 
	 * @param updateUserLo
	 *            用户日志对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateUserLoBy1(UserLoDto updateUserLo, String[] updateProperties, String... whereEqProperties);


	/**
	 * 查询:用户日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLo
	 *            用户日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoBy1ForObject(Class<R> requiredType, UserLoDto selectUserLo, String objectId, String... whereEqProperties);
	
	/**
	 * 查询:用户日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLo
	 *            用户日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户日志对象集合
	 */
	<R> List<R> selectUserLoBy1ForObjectList(Class<R> requiredType, UserLoDto selectUserLo, String objectId, String... whereEqProperties);


	/**
	 * 查询:用户日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLo
	 *            用户日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoBy1ForMappedObject(Class<R> mappedClass, UserLoDto selectUserLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLo
	 *            用户日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户日志对象集合
	 */
	<R> List<R> selectUserLoBy1ForMappedObjectList(Class<R> mappedClass, UserLoDto selectUserLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 插入:用户登录
	 * 
	 * @param insertUserLoIn
	 *            用户登录对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertUserLoInBy1(UserLoInDto insertUserLoIn, String... insertProperties);

	/**
	 * 插入:用户登录
	 * 
	 * @param insertUserLoIn
	 *            用户登录对象
	 * 
	 * @return 影响行数
	 */
	int insertUserLoInBy1_1(UserLoInDto insertUserLoIn);

	/**
	 * 插入:用户登录
	 * 
	 * @param insertUserLoIn
	 *            用户登录对象
	 * 
	 * @return 影响行数
	 */
	int insertUserLoInBy2(UserLoInDto insertUserLoIn);
	
	/**
	 * 删除:用户登录
	 * 
	 * @param deleteUserLoIn
	 *            用户登录对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteUserLoInBy1(UserLoInDto deleteUserLoIn, String... whereEqProperties);

	/**
	 * 删除:用户登录
	 * 
	 * @param deleteUserLoIn
	 *            用户登录对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserLoInBy1_1(UserLoInDto deleteUserLoIn);
	
	/**
	 * 删除:用户登录
	 * 
	 * @param deleteUserLoIn
	 *            用户登录对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserLoInByIds(UserLoInDto deleteUserLoIn);

	/**
	 * 更新:用户登录
	 * 
	 * @param updateUserLoIn
	 *            用户登录对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateUserLoInBy1(UserLoInDto updateUserLoIn, String[] updateProperties, String... whereEqProperties);

	/**
	 * 更新:用户登录
	 * 
	 * @param updateUserLoIn
	 *            用户登录对象
	 * 
	 * @return 影响行数
	 */
	int updateUserLoInBy1_1(UserLoInDto updateUserLoIn);
	
	/**
	 * 更新:用户登录
	 * 
	 * @param updateUserLoIn
	 *            用户登录对象
	 * 
	 * @return 影响行数
	 */
	int updateUserLoInBy2(UserLoInDto updateUserLoIn);

	/**
	 * 查询:用户登录
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInBy1ForObject(Class<R> requiredType, UserLoInDto selectUserLoIn, String objectId, String... whereEqProperties);

	/**
	 * 查询:用户登录
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInBy1_1ForObject(Class<R> requiredType, UserLoInDto selectUserLoIn, String objectId);
	
	/**
	 * 查询:用户登录
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInBy2ForObject(Class<R> requiredType, UserLoInDto selectUserLoIn, String objectId);
	
	/**
	 * 查询:用户登录
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户登录对象集合
	 */
	<R> List<R> selectUserLoInBy1ForObjectList(Class<R> requiredType, UserLoInDto selectUserLoIn, String objectId, String... whereEqProperties);

	/**
	 * 查询:用户登录
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 用户登录对象集合
	 */
	<R> List<R> selectUserLoInBy1_1ForObjectList(Class<R> requiredType, UserLoInDto selectUserLoIn, String objectId);
	
	/**
	 * 查询:用户登录
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 用户登录对象集合
	 */
	<R> List<R> selectUserLoInBy2ForObjectList(Class<R> requiredType, UserLoInDto selectUserLoIn, String objectId);

	/**
	 * 查询:用户登录
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInBy1ForMappedObject(Class<R> mappedClass, UserLoInDto selectUserLoIn, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户登录
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInBy1_1ForMappedObject(Class<R> mappedClass, UserLoInDto selectUserLoIn);
	
	/**
	 * 查询:用户登录
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInBy2ForMappedObject(Class<R> mappedClass, UserLoInDto selectUserLoIn);

	/**
	 * 查询:用户登录
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * @return 返回数据
	 */
	int selectUserLoInByCodeNqIdForInteger(UserLoInDto selectUserLoIn);

	/**
	 * 查询:用户登录
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户登录对象集合
	 */
	<R> List<R> selectUserLoInBy1ForMappedObjectList(Class<R> mappedClass, UserLoInDto selectUserLoIn, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户登录
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @return 用户登录对象集合
	 */
	<R> List<R> selectUserLoInBy1_1ForMappedObjectList(Class<R> mappedClass, UserLoInDto selectUserLoIn);

	/**
	 * 查询:用户登录
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoIn
	 *            用户登录对象
	 * 
	 * @return 用户登录对象集合
	 */
	<R> List<R> selectUserLoInBy2ForMappedObjectList(Class<R> mappedClass, UserLoInDto selectUserLoIn);
	
	/**
	 * 分页:用户登录
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param paginationUserLoIn
	 *            用户登录对象
	 * 
	 * @return 用户登录分页对象
	 */
	<R> PaginationDto<R> paginationUserLoInBy1ForMappedObjectList(final Class<R> mappedClass,
			UserLoInDto paginationUserLoIn);
			
	/**
	 * 分页
	 * 
	 * @param paginationUserLoIn
	 *            用户登录对象
	 * 
	 * @return 用户登录分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserLoInBy1ForMapList(UserLoInDto paginationUserLoIn);

	/**
	 * 插入:用户登录日志
	 * 
	 * @param insertUserLoInLo
	 *            用户登录日志对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertUserLoInLoBy1(UserLoInLoDto insertUserLoInLo, String... insertProperties);
	
	/**
	 * 删除:用户登录日志
	 * 
	 * @param deleteUserLoInLo
	 *            用户登录日志对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteUserLoInLoBy1(UserLoInLoDto deleteUserLoInLo, String... whereEqProperties);


	/**
	 * 更新:用户登录日志
	 * 
	 * @param updateUserLoInLo
	 *            用户登录日志对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateUserLoInLoBy1(UserLoInLoDto updateUserLoInLo, String[] updateProperties, String... whereEqProperties);


	/**
	 * 查询:用户登录日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoInLo
	 *            用户登录日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInLoBy1ForObject(Class<R> requiredType, UserLoInLoDto selectUserLoInLo, String objectId, String... whereEqProperties);
	
	/**
	 * 查询:用户登录日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserLoInLo
	 *            用户登录日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户登录日志对象集合
	 */
	<R> List<R> selectUserLoInLoBy1ForObjectList(Class<R> requiredType, UserLoInLoDto selectUserLoInLo, String objectId, String... whereEqProperties);


	/**
	 * 查询:用户登录日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoInLo
	 *            用户登录日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserLoInLoBy1ForMappedObject(Class<R> mappedClass, UserLoInLoDto selectUserLoInLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户登录日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserLoInLo
	 *            用户登录日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户登录日志对象集合
	 */
	<R> List<R> selectUserLoInLoBy1ForMappedObjectList(Class<R> mappedClass, UserLoInLoDto selectUserLoInLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 插入:用户关系
	 * 
	 * @param insertUserRe
	 *            用户关系对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertUserReBy1(UserReDto insertUserRe, String... insertProperties);

	/**
	 * 插入:用户关系
	 * 
	 * @param insertUserRe
	 *            用户关系对象
	 * 
	 * @return 影响行数
	 */
	int insertUserReBy1_1(UserReDto insertUserRe);

	/**
	 * 插入:用户关系
	 * 
	 * @param insertUserRe
	 *            用户关系对象
	 * 
	 * @return 影响行数
	 */
	int insertUserReBy2(UserReDto insertUserRe);
	
	/**
	 * 删除:用户关系
	 * 
	 * @param deleteUserRe
	 *            用户关系对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteUserReBy1(UserReDto deleteUserRe, String... whereEqProperties);

	/**
	 * 删除:用户关系
	 * 
	 * @param deleteUserRe
	 *            用户关系对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserReBy1_1(UserReDto deleteUserRe);
	
	/**
	 * 删除:用户关系
	 * 
	 * @param deleteUserRe
	 *            用户关系对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserReByIds(UserReDto deleteUserRe);

	/**
	 * 更新:用户关系
	 * 
	 * @param updateUserRe
	 *            用户关系对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateUserReBy1(UserReDto updateUserRe, String[] updateProperties, String... whereEqProperties);

	/**
	 * 更新:用户关系
	 * 
	 * @param updateUserRe
	 *            用户关系对象
	 * 
	 * @return 影响行数
	 */
	int updateUserReBy1_1(UserReDto updateUserRe);
	
	/**
	 * 更新:用户关系
	 * 
	 * @param updateUserRe
	 *            用户关系对象
	 * 
	 * @return 影响行数
	 */
	int updateUserReBy2(UserReDto updateUserRe);

	/**
	 * 查询:用户关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReBy1ForObject(Class<R> requiredType, UserReDto selectUserRe, String objectId, String... whereEqProperties);

	/**
	 * 查询:用户关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReBy1_1ForObject(Class<R> requiredType, UserReDto selectUserRe, String objectId);
	
	/**
	 * 查询:用户关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReBy2ForObject(Class<R> requiredType, UserReDto selectUserRe, String objectId);
	
	/**
	 * 查询:用户关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户关系对象集合
	 */
	<R> List<R> selectUserReBy1ForObjectList(Class<R> requiredType, UserReDto selectUserRe, String objectId, String... whereEqProperties);

	/**
	 * 查询:用户关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 用户关系对象集合
	 */
	<R> List<R> selectUserReBy1_1ForObjectList(Class<R> requiredType, UserReDto selectUserRe, String objectId);
	
	/**
	 * 查询:用户关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 用户关系对象集合
	 */
	<R> List<R> selectUserReBy2ForObjectList(Class<R> requiredType, UserReDto selectUserRe, String objectId);

	/**
	 * 查询:用户关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReBy1ForMappedObject(Class<R> mappedClass, UserReDto selectUserRe, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReBy1_1ForMappedObject(Class<R> mappedClass, UserReDto selectUserRe);
	
	/**
	 * 查询:用户关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReBy2ForMappedObject(Class<R> mappedClass, UserReDto selectUserRe);

	/**
	 * 查询:用户关系
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * @return 返回数据
	 */
	int selectUserReByCodeNqIdForInteger(UserReDto selectUserRe);

	/**
	 * 查询:用户关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户关系对象集合
	 */
	<R> List<R> selectUserReBy1ForMappedObjectList(Class<R> mappedClass, UserReDto selectUserRe, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @return 用户关系对象集合
	 */
	<R> List<R> selectUserReBy1_1ForMappedObjectList(Class<R> mappedClass, UserReDto selectUserRe);

	/**
	 * 查询:用户关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserRe
	 *            用户关系对象
	 * 
	 * @return 用户关系对象集合
	 */
	<R> List<R> selectUserReBy2ForMappedObjectList(Class<R> mappedClass, UserReDto selectUserRe);
	
	/**
	 * 分页:用户关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param paginationUserRe
	 *            用户关系对象
	 * 
	 * @return 用户关系分页对象
	 */
	<R> PaginationDto<R> paginationUserReBy1ForMappedObjectList(final Class<R> mappedClass,
			UserReDto paginationUserRe);
			
	/**
	 * 分页
	 * 
	 * @param paginationUserRe
	 *            用户关系对象
	 * 
	 * @return 用户关系分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserReBy1ForMapList(UserReDto paginationUserRe);

	/**
	 * 插入:用户关系日志
	 * 
	 * @param insertUserReLo
	 *            用户关系日志对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertUserReLoBy1(UserReLoDto insertUserReLo, String... insertProperties);
	
	/**
	 * 删除:用户关系日志
	 * 
	 * @param deleteUserReLo
	 *            用户关系日志对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteUserReLoBy1(UserReLoDto deleteUserReLo, String... whereEqProperties);


	/**
	 * 更新:用户关系日志
	 * 
	 * @param updateUserReLo
	 *            用户关系日志对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateUserReLoBy1(UserReLoDto updateUserReLo, String[] updateProperties, String... whereEqProperties);


	/**
	 * 查询:用户关系日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserReLo
	 *            用户关系日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReLoBy1ForObject(Class<R> requiredType, UserReLoDto selectUserReLo, String objectId, String... whereEqProperties);
	
	/**
	 * 查询:用户关系日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectUserReLo
	 *            用户关系日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户关系日志对象集合
	 */
	<R> List<R> selectUserReLoBy1ForObjectList(Class<R> requiredType, UserReLoDto selectUserReLo, String objectId, String... whereEqProperties);


	/**
	 * 查询:用户关系日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserReLo
	 *            用户关系日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectUserReLoBy1ForMappedObject(Class<R> mappedClass, UserReLoDto selectUserReLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:用户关系日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectUserReLo
	 *            用户关系日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 用户关系日志对象集合
	 */
	<R> List<R> selectUserReLoBy1ForMappedObjectList(Class<R> mappedClass, UserReLoDto selectUserReLo, String[] selectProperties, String... whereEqProperties);
}